Skip to content

Conversation

@lidel
Copy link
Member

@lidel lidel commented Oct 24, 2025

Summary

This PR moves ex-Shipyard staff to the @ipfs/contributors team

Why do you need this?

this is standard security procedure to ensure team memberships reflect current responsibilities.

What else do we need to know?

if anyone needs to retain access to repos which were granted by old teams, they should open a PR in this repo to restore it

DRI: myself

Reviewer's Checklist

  • It is clear where the request is coming from (if unsure, ask)
  • All the automated checks passed
  • The YAML changes reflect the summary of the request
  • The Terraform plan posted as a comment reflects the summary of the request

this is standard security procedure to ensure team memberships
reflect current responsibilities. if anyone needs to retain access
to repos which were granted by old teams, they should reach out
@lidel lidel requested a review from aschmahmann October 24, 2025 00:35
@github-actions
Copy link
Contributor

The following access changes will be introduced as a result of applying the plan:

Access Changes
User 2color:
  - will lose push permission to 2019.ipfs.camp
  - will lose push permission to aegir
  - will lose push permission to benchmarks
  - will lose push permission to boxo
  - will lose push permission to camp
  - will have the permission to community change from maintain to triage
  - will lose push permission to distributions
  - will lose push permission to eslint-config-ipfs
  - will lose push permission to fs-repo-migrations
  - will lose push permission to go-bitfield
  - will lose push permission to go-block-format
  - will lose push permission to go-bs-sqlite3
  - will lose push permission to go-cid
  - will lose push permission to go-cidutil
  - will lose push permission to go-datastore
  - will lose push permission to go-detect-race
  - will lose push permission to go-dnslink
  - will lose push permission to go-ds-badger
  - will lose push permission to go-ds-crdt
  - will lose push permission to go-ds-flatfs
  - will lose push permission to go-ds-leveldb
  - will lose push permission to go-ds-measure
  - will lose push permission to go-ds-redis
  - will lose push permission to go-ds-s3
  - will lose push permission to go-ds-sql
  - will lose push permission to go-ds-swift
  - will lose push permission to go-fs-lock
  - will lose push permission to go-graphsync
  - will lose push permission to go-ipfs-archived
  - will lose push permission to go-ipfs-blocksutil
  - will lose push permission to go-ipfs-cmds
  - will lose push permission to go-ipfs-delay
  - will lose push permission to go-ipfs-example-plugin
  - will lose push permission to go-ipfs-pq
  - will lose push permission to go-ipld-cbor
  - will lose push permission to go-ipld-eth-import
  - will lose push permission to go-ipld-format
  - will lose push permission to go-ipld-git
  - will lose push permission to go-ipld-legacy
  - will lose push permission to go-ipld-zcash
  - will lose push permission to go-libipfs-rapide
  - will lose push permission to go-log
  - will lose push permission to go-merkledag
  - will lose push permission to go-metrics-interface
  - will lose push permission to go-metrics-prometheus
  - will lose push permission to go-peertaskqueue
  - will lose pull permission to go-qringbuf
  - will lose push permission to go-todocounter
  - will lose push permission to go-unixfsnode
  - will lose push permission to hang-fds
  - will lose admin permission to helia
  - will lose admin permission to helia-cli
  - will lose admin permission to helia-delegated-routing-v1-http-api
  - will lose admin permission to helia-http-gateway
  - will lose admin permission to helia-remote-pinning
  - will lose admin permission to helia-verified-fetch
  - will have the permission to in-web-browsers change from push to pull
  - will have the permission to ipfs change from triage to pull
  - will lose pull permission to ipfs-companion
  - will lose push permission to ipfs-desktop
  - will lose push permission to ipfs-ds-postgres
  - will lose admin permission to ipfs-gui
  - will lose push permission to ipfs-update
  - will lose push permission to ipfs-webui
  - will lose push permission to ipget
  - will lose push permission to ipld-explorer-components
  - will lose push permission to iptb
  - will lose push permission to iptb-plugins
  - will lose push permission to js-dag-service
  - will lose push permission to js-datastore-pubsub
  - will lose push permission to js-fs-pull-blob-store
  - will lose pull permission to js-hamt-sharding
  - will lose push permission to js-idb-pull-blob-store
  - will lose push permission to js-ipfs-bitswap
  - will lose push permission to js-ipfs-merkle-dag
  - will lose push permission to js-ipfs-repo
  - will lose push permission to js-ipfs-unixfs
  - will lose push permission to js-ipfs-utils
  - will lose push permission to js-ipfsd-ctl
  - will lose push permission to js-ipns
  - will have the permission to js-kubo-rpc-client change from push to pull
  - will lose push permission to js-level-pull-blob-store
  - will have the permission to kubo change from push to pull
  - will lose push permission to protons
  - will lose push permission to public-gateway-checker
  - will have the permission to roadmap change from push to pull
  - will lose admin permission to service-worker-gateway
  - will lose push permission to specs
  - will gain pull permission to distributed-wikipedia-mirror
  - will gain pull permission to go-dag-store
User marcopolo:
  - will gain triage permission to community
  - will gain push permission to devgrants
  - will gain pull permission to distributed-wikipedia-mirror
  - will gain pull permission to go-dag-store
  - will gain pull permission to in-web-browsers
  - will gain pull permission to ipfs
  - will gain pull permission to js-kubo-rpc-client
  - will gain pull permission to kubo
  - will gain pull permission to roadmap
User sgtpooki:
  - will lose push permission to 2019.ipfs.camp
  - will lose push permission to aegir
  - will lose push permission to awesome-ipfs
  - will lose push permission to benchmarks
  - will have the permission to community change from push to triage
  - will lose maintain permission to distributions
  - will lose push permission to eslint-config-ipfs
  - will lose admin permission to helia
  - will lose admin permission to helia-cli
  - will lose admin permission to helia-delegated-routing-v1-http-api
  - will lose admin permission to helia-http-gateway
  - will lose admin permission to helia-remote-pinning
  - will lose admin permission to helia-verified-fetch
  - will have the permission to in-web-browsers change from maintain to pull
  - will lose push permission to ipfs-companion
  - will lose push permission to ipfs-desktop
  - will lose admin permission to ipfs-gui
  - will lose push permission to ipfs-webui
  - will lose push permission to ipld-explorer-components
  - will lose push permission to iptb
  - will lose push permission to js-dag-service
  - will lose push permission to js-datastore-pubsub
  - will lose push permission to js-fs-pull-blob-store
  - will lose pull permission to js-hamt-sharding
  - will lose push permission to js-idb-pull-blob-store
  - will lose push permission to js-ipfs-bitswap
  - will lose push permission to js-ipfs-merkle-dag
  - will lose push permission to js-ipfs-repo
  - will lose push permission to js-ipfs-unixfs
  - will lose push permission to js-ipfs-utils
  - will lose push permission to js-ipfsd-ctl
  - will lose push permission to js-ipns
  - will lose push permission to js-level-pull-blob-store
  - will lose pull permission to pinning-services-api-spec
  - will lose push permission to protons
  - will lose maintain permission to public-gateway-checker
  - will lose admin permission to service-worker-gateway
  - will gain push permission to devgrants
  - will gain pull permission to distributed-wikipedia-mirror
  - will gain pull permission to go-dag-store
  - will gain pull permission to ipfs
  - will gain pull permission to js-kubo-rpc-client
  - will gain pull permission to kubo
  - will gain pull permission to roadmap
User sukunrt:
  - will gain triage permission to community
  - will gain push permission to devgrants
  - will gain pull permission to distributed-wikipedia-mirror
  - will gain pull permission to go-dag-store
  - will gain pull permission to in-web-browsers
  - will gain pull permission to ipfs
  - will gain pull permission to js-kubo-rpc-client
  - will gain pull permission to kubo
  - will gain pull permission to roadmap

@github-actions
Copy link
Contributor

Before merge, verify that all the following plans are correct. They will be applied as-is after the merge.

Terraform plans

ipfs

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create
  - destroy

Terraform will perform the following actions:

  # github_repository_collaborator.this["service-worker-gateway:sgtpooki"] will be destroyed
  # (because key ["service-worker-gateway:sgtpooki"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "service-worker-gateway:SgtPooki" -> null
      - permission = "admin" -> null
      - repository = "service-worker-gateway" -> null
      - username   = "SgtPooki" -> null
    }

  # github_team_membership.this["community:2color"] will be destroyed
  # (because key ["community:2color"] is not in for_each map)
  - resource "github_team_membership" "this" {
      - etag     = "W/\"957bfe7c97d7d4919d0dae2141e0e5e76c6617b0d731cd3c9dd09708a2f838a5\"" -> null
      - id       = "5082620:2color" -> null
      - role     = "maintainer" -> null
      - team_id  = "5082620" -> null
      - username = "2color" -> null
    }

  # github_team_membership.this["contributors:2color"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "member"
      + team_id  = "1376970"
      + username = "2color"
    }

  # github_team_membership.this["contributors:marcopolo"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "member"
      + team_id  = "1376970"
      + username = "MarcoPolo"
    }

  # github_team_membership.this["contributors:sgtpooki"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "member"
      + team_id  = "1376970"
      + username = "SgtPooki"
    }

  # github_team_membership.this["contributors:sukunrt"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "member"
      + team_id  = "1376970"
      + username = "sukunrt"
    }

  # github_team_membership.this["gui-dev:sgtpooki"] will be destroyed
  # (because key ["gui-dev:sgtpooki"] is not in for_each map)
  - resource "github_team_membership" "this" {
      - etag     = "W/\"3f32b9356894ca35f4392c1aea42d25b72a2fbe45833128f53fef485390c7942\"" -> null
      - id       = "6274133:SgtPooki" -> null
      - role     = "member" -> null
      - team_id  = "6274133" -> null
      - username = "SgtPooki" -> null
    }

  # github_team_membership.this["helia-dev:2color"] will be destroyed
  # (because key ["helia-dev:2color"] is not in for_each map)
  - resource "github_team_membership" "this" {
      - etag     = "W/\"db95be72ab0affe3512a577659011117166d179287655a55fc956459da45bd8e\"" -> null
      - id       = "7676419:2color" -> null
      - role     = "member" -> null
      - team_id  = "7676419" -> null
      - username = "2color" -> null
    }

  # github_team_membership.this["helia-dev:sgtpooki"] will be destroyed
  # (because key ["helia-dev:sgtpooki"] is not in for_each map)
  - resource "github_team_membership" "this" {
      - etag     = "W/\"fe9190a3ca5050ef2354ad73958d270e228ec9d1825a075672992bb4e76493d1\"" -> null
      - id       = "7676419:SgtPooki" -> null
      - role     = "member" -> null
      - team_id  = "7676419" -> null
      - username = "SgtPooki" -> null
    }

  # github_team_membership.this["repos - go:2color"] will be destroyed
  # (because key ["repos - go:2color"] is not in for_each map)
  - resource "github_team_membership" "this" {
      - etag     = "W/\"fa89a7bf28b7e217e0468b7564149df8e09fca689b7487733252e3a9e6f3faaf\"" -> null
      - id       = "3232508:2color" -> null
      - role     = "member" -> null
      - team_id  = "3232508" -> null
      - username = "2color" -> null
    }

  # github_team_membership.this["repos - javascript:2color"] will be destroyed
  # (because key ["repos - javascript:2color"] is not in for_each map)
  - resource "github_team_membership" "this" {
      - etag     = "W/\"84d51dffd2a0187bc9fd8a21eafa3f24cef7076e668256927bf746d1b7439070\"" -> null
      - id       = "1433120:2color" -> null
      - role     = "member" -> null
      - team_id  = "1433120" -> null
      - username = "2color" -> null
    }

  # github_team_membership.this["repos - javascript:sgtpooki"] will be destroyed
  # (because key ["repos - javascript:sgtpooki"] is not in for_each map)
  - resource "github_team_membership" "this" {
      - etag     = "W/\"ccaab60eec9971e98397bac7dfa2b24bf030e2046bb29b49b8d284002be23fcb\"" -> null
      - id       = "1433120:SgtPooki" -> null
      - role     = "member" -> null
      - team_id  = "1433120" -> null
      - username = "SgtPooki" -> null
    }

  # github_team_membership.this["wg gui/ux:2color"] will be destroyed
  # (because key ["wg gui/ux:2color"] is not in for_each map)
  - resource "github_team_membership" "this" {
      - etag     = "W/\"cd5656aa01bd9059c5de2b0c5e8a69c7c4dc0037add95c9c4acab9b7219b20c3\"" -> null
      - id       = "2825335:2color" -> null
      - role     = "member" -> null
      - team_id  = "2825335" -> null
      - username = "2color" -> null
    }

  # github_team_membership.this["wg gui/ux:sgtpooki"] will be destroyed
  # (because key ["wg gui/ux:sgtpooki"] is not in for_each map)
  - resource "github_team_membership" "this" {
      - etag     = "W/\"131e1796a8240614ce1616d944c2f23a2351552bd29fc245d68fac66ecb8452b\"" -> null
      - id       = "2825335:SgtPooki" -> null
      - role     = "member" -> null
      - team_id  = "2825335" -> null
      - username = "SgtPooki" -> null
    }

  # github_team_membership.this["wg-pinning-services:sgtpooki"] will be destroyed
  # (because key ["wg-pinning-services:sgtpooki"] is not in for_each map)
  - resource "github_team_membership" "this" {
      - etag     = "W/\"8d93a90b6889f9218f72e3a8f2621a14accf9e8f932908c82f52184cb56a1fed\"" -> null
      - id       = "3968017:SgtPooki" -> null
      - role     = "member" -> null
      - team_id  = "3968017" -> null
      - username = "SgtPooki" -> null
    }

Plan: 4 to add, 0 to change, 11 to destroy.

@lidel lidel marked this pull request as ready for review October 24, 2025 00:40
@lidel lidel requested a review from a team as a code owner October 24, 2025 00:40
@aschmahmann aschmahmann merged commit fa6b55f into master Oct 24, 2025
6 checks passed
@aschmahmann
Copy link
Contributor

Thanks folks for all your work and contributions to the project, hope to see you around whether in the IPFS context or otherwise.

As mentioned if permissions are still needed for something just open up a PR here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants